var maincontab={index:0};
top.maincontab =maincontab;
$(function() {
    function getouterwidth(eniment) {
        var width = 0;
        $(eniment).each(function() {
            width += $(this).outerWidth(true);
        });
        return width;
    }
    function movecurrtab(eniment) {
        var prevwith = getouterwidth($(eniment).prevAll()),
            nextwith = getouterwidth($(eniment).nextAll());
        var otherwith = getouterwidth($(".content-tabs").children().not(".J_menuTabs"));
        var contentwith = $(".content-tabs").outerWidth(true) - otherwith;
        var position = 0;
        if ($(".page-tabs-content").outerWidth() < contentwith) {
            position = 0;
        } else {
            if (nextwith <= (contentwith - $(eniment).outerWidth(true) - $(eniment).next().outerWidth(true))) {
                if ((contentwith - $(eniment).next().outerWidth(true)) > nextwith) {
                    position = prevwith;
                    var $this = eniment;
                    while ((position - $($this).outerWidth()) > ($(".page-tabs-content").outerWidth() - contentwith)) {
                        position -= $($this).prev().outerWidth();
                        $this = $($this).prev();
                    }
                }
            } else {
                if (prevwith > (contentwith - $(eniment).outerWidth(true) - $(eniment).prev().outerWidth(true))) {
                    position = prevwith - $(eniment).prev().outerWidth(true);
                }
            }
        }
        $(".page-tabs-content").animate({
            marginLeft: 0 - position + "px"
        }, "fast");
    }
    function moveleft() {
        var currposition = Math.abs(parseInt($(".page-tabs-content").css("margin-left")));
        var otherwith = getouterwidth($(".content-tabs").children().not(".J_menuTabs"));
        var contentwith = $(".content-tabs").outerWidth(true) - otherwith;
        var posiont = 0;
        if ($(".page-tabs-content").width() < contentwith) {
            return false;
        } else {
            var peniment = $(".J_menuTab:first");
            var pposition = 0;
            while ((pposition + $(peniment).outerWidth(true)) <= currposition) {
                pposition += $(peniment).outerWidth(true);
                peniment = $(peniment).next();
            }
            pposition = 0;
            if (getouterwidth($(peniment).prevAll()) > contentwith) {
                while ((pposition + $(peniment).outerWidth(true)) < (contentwith) && peniment.length > 0) {
                    pposition += $(peniment).outerWidth(true);
                    peniment = $(peniment).prev();
                }
                posiont = getouterwidth($(peniment).prevAll());
            }
        }
        $(".page-tabs-content").animate({
            marginLeft: 0 - posiont + "px"
        }, "fast");
    }
    function moveright() {
        var currposition = Math.abs(parseInt($(".page-tabs-content").css("margin-left")));
        var otherwith = getouterwidth($(".content-tabs").children().not(".J_menuTabs"));
        var contentwith = $(".content-tabs").outerWidth(true) - otherwith;
        var posiont = 0;
        if ($(".page-tabs-content").width() < contentwith) {
            return false;
        } else {
            var peniment = $(".J_menuTab:first");
            var pposition = 0;
            while ((pposition + $(peniment).outerWidth(true)) <= currposition) {
                pposition += $(peniment).outerWidth(true);
                peniment = $(peniment).next();
            }
            pposition = 0;
            while ((pposition + $(peniment).outerWidth(true)) < (contentwith) && peniment.length > 0) {
                pposition += $(peniment).outerWidth(true);
                peniment = $(peniment).next();
            }
            posiont = getouterwidth($(peniment).prevAll());
            if (posiont > 0) {
                $(".page-tabs-content").animate({
                    marginLeft: 0 - posiont + "px"
                }, "fast");
            }
        }
    }
   

    function opentab() {
        var href = $(this).attr("href"),
            index = $(this).data("index"),
            text = $.trim($(this).text()),
			opentype =$(this).attr("opentype"),
			tabname =$(this).attr("tabname"),
            iscreate = true;
        if (href == undefined || $.trim(href).length == 0) {
            return false;
        }
		if(opentype && opentype =="1")
		{
			window.open(href);
			return false;
		} 
        $(".J_menuTab").each(function() {
            if ($(this).data("id") == tabname) {
                if (!$(this).hasClass("active")) {
                    $(this).addClass("active").siblings(".J_menuTab").removeClass("active");
                    movecurrtab(this);
                    $(".J_mainContent .J_iframe").each(function() {
                        if ($(this).data("id") == tabname) {
                            $(this).show().siblings(".J_iframe").hide();
                            return false;
                        }
                    });
                }else{  
                	$(".J_mainContent .J_iframe").each(function() {
                		 var thisiframe =$(this);
                         if (thisiframe.data("id") == tabname) {
                        	thisiframe.get(0).contentWindow.location.reload();  
                            return false;
                         }
                     });  
                }
                iscreate = false;
                return false;
            }
        });
        if (iscreate) {
            var createtab = '<a href="javascript:;" class="active J_menuTab" data-id="' + tabname + '">' + text + ' <i class="fa fa-times-circle"></i></a>';
            $(".J_menuTab").removeClass("active");
            var n = '<iframe class="J_iframe" name="iframe' + index + '" width="100%" height="100%" src="' + href + '" frameborder="0" data-id="' + tabname + '" seamless></iframe>';
            var icurriframe = $(n);
            var icurrtab =$(createtab);
            $(".J_mainContent").find("iframe.J_iframe").hide().parents(".J_mainContent").append(icurriframe);
            $(".J_menuTabs .page-tabs-content").append(icurrtab);  
            icurriframe.get(0).contentWindow.maincontab =maincontab;
            icurriframe.get(0).contentWindow.closewin =function () {
            	closeetab(icurrtab);
            };
            movecurrtab($(".J_menuTab.active"));
           
        }
        return false;
    }
    
    
    function clickclosebt() {
        var tabname = $(this).parents(".J_menuTab").data("id");
        var l = $(this).parents(".J_menuTab").width();
        if ($(this).parents(".J_menuTab").hasClass("active")) {
            if ($(this).parents(".J_menuTab").next(".J_menuTab").size()) {
                var k = $(this).parents(".J_menuTab").next(".J_menuTab:eq(0)").data("id");
                $(this).parents(".J_menuTab").next(".J_menuTab:eq(0)").addClass("active");
                $(".J_mainContent .J_iframe").each(function() {
                    if ($(this).data("id") == k) {
                        $(this).show().siblings(".J_iframe").hide();
                        return false;
                    }
                });
                var n = parseInt($(".page-tabs-content").css("margin-left"));
                if (n < 0) {
                    $(".page-tabs-content").animate({
                        marginLeft: (n + l) + "px"
                    }, "fast");
                }
                $(this).parents(".J_menuTab").remove();
                $(".J_mainContent .J_iframe").each(function() {
                    if ($(this).data("id") == tabname) {
                        $(this).remove();
                        return false;
                    }
                });
            }
            if ($(this).parents(".J_menuTab").prev(".J_menuTab").size()) {
                var k = $(this).parents(".J_menuTab").prev(".J_menuTab:last").data("id");
                $(this).parents(".J_menuTab").prev(".J_menuTab:last").addClass("active");
                $(".J_mainContent .J_iframe").each(function() {
                    if ($(this).data("id") == k) {
                        $(this).show().siblings(".J_iframe").hide();
                        return false;
                    }
                });
                $(this).parents(".J_menuTab").remove();
                $(".J_mainContent .J_iframe").each(function() {
                    if ($(this).data("id") == tabname) {
                        $(this).remove();
                        return false;
                    }
                });
            }
        } else {
            $(this).parents(".J_menuTab").remove();
            $(".J_mainContent .J_iframe").each(function() {
                if ($(this).data("id") == tabname) {
                    $(this).remove();
                    return false;
                }
            });
            movecurrtab($(".J_menuTab.active"));
        }
        return false;
    }
    

    function closeothertab() {
        $(".page-tabs-content").children("[data-id]").not(":first").not(".active").each(function() {
            $('.J_iframe[data-id="' + $(this).data("id") + '"]').remove();
            $(this).remove();
        });
        $(".page-tabs-content").css("margin-left", "0");
    }
	  
    function selecttab() {
        if (!$(this).hasClass("active")) {
            var k = $(this).data("id");
            $(".J_mainContent .J_iframe").each(function() {
                if ($(this).data("id") == k) {
                    $(this).show().siblings(".J_iframe").hide();
                    return false;
                }
            });
            $(this).addClass("active").siblings(".J_menuTab").removeClass("active");
            movecurrtab(this);
        }
    }
    
	 $(".J_menuItem").each(function(k) {
        if (!$(this).attr("data-index")) {
            $(this).attr("data-index", k);
        }
        maincontab.index =k;
    });
	
	 
	 function closeativetab() {
		 closeetab($(".J_menuTab.active"));
     }
	 
	 function reloadativetab() {
    	var currtab =$(".J_menuTab.active");
    	var tabname =currtab.data("id");
    	$(".J_mainContent .J_iframe").each(function() {
    		 var thisiframe =$(this);
             if (thisiframe.data("id") == tabname) {
            	if (thisiframe.get(0).contentWindow.reloadwin != null && ((typeof thisiframe.get(0).contentWindow.reloadwin) == "function")) {
             		thisiframe.get(0).contentWindow.reloadwin();
             	}else
         		{
         		    thisiframe.get(0).contentWindow.location.reload();
         		} 
                return   
             }
         });  
     }

	function closeetab($this) { 
	        var tabname = $this.data("id");
	        var tabwidth = $this.width();
	        
	        if ($this.hasClass("active")) {
	        	var firstid = $(".page-tabs-content").find("[data-id]:first").data("id");
	        	if (tabname == firstid)
        		{
        		   return;
        		}
	        	
	            if ($this.next(".J_menuTab").size()) {
	                var k = $this.next(".J_menuTab:eq(0)").data("id");
	                $this.next(".J_menuTab:eq(0)").addClass("active");
	                $(".J_mainContent .J_iframe").each(function() {
	                    if ($(this).data("id") == k) {
	                        $(this).show().siblings(".J_iframe").hide();
	                        return 
	                    }
	                });
	                var n = parseInt($(".page-tabs-content").css("margin-left"));
	                if (n < 0) {
	                    $(".page-tabs-content").animate({
	                        marginLeft: (n + tabwidth) + "px"
	                    }, "fast");
	                }
	                $this.remove();
	                $(".J_mainContent .J_iframe").each(function() {
	                    if ($(this).data("id") == tabname) {
	                        $(this).remove();
	                        return 
	                    }
	                });
	            }
	            if ($this.prev(".J_menuTab").size()) {
	                var k = $this.prev(".J_menuTab:last").data("id");
	                $this.prev(".J_menuTab:last").addClass("active");
	                $(".J_mainContent .J_iframe").each(function() {
	                    if ($(this).data("id") == k) {
	                        $(this).show().siblings(".J_iframe").hide();
	                        return 
	                    }
	                });
	                $this.remove();
	                $(".J_mainContent .J_iframe").each(function() {
	                    if ($(this).data("id") == tabname) {
	                        $(this).remove();
	                        return 
	                    }
	                });
	            }
	        } 
	    }
	
	maincontab.opentabs =function(href,text,opentype,tabname) { 
		var  iscreate = true;
        if (href == undefined || $.trim(href).length == 0) {
            return false;
        }
		if(opentype && opentype =="1")
		{
			window.open(href);
			return false;
		}
        $(".J_menuTab").each(function() {
            if ($(this).data("id") == tabname) {
                if (!$(this).hasClass("active")) {
                    $(this).addClass("active").siblings(".J_menuTab").removeClass("active");
                    movecurrtab(this);
                    $(".J_mainContent .J_iframe").each(function() {
                        if ($(this).data("id") == tabname) {
                            $(this).show().siblings(".J_iframe").hide();
                            $(this).attr("src",href);
                            return false;
                        }
                    });
                } 
                iscreate = false;
                return false;
            }
        });
        if (iscreate) {
        	var index = maincontab.index++;
            var createtab = '<a href="javascript:;" class="active J_menuTab" data-id="' + tabname + '">' + text + ' <i class="fa fa-times-circle"></i></a>';
            $(".J_menuTab").removeClass("active");
            var n = '<iframe class="J_iframe" name="iframe' + index + '" width="100%" height="100%" src="' + href + '" frameborder="0" data-id="' + tabname + '" seamless></iframe>';
            var icurriframe = $(n);
            var icurrtab =$(createtab);
            $(".J_mainContent").find("iframe.J_iframe").hide().parents(".J_mainContent").append(icurriframe);
            $(".J_menuTabs .page-tabs-content").append(icurrtab);  
            icurriframe.get(0).contentWindow.maincontab =maincontab;
            icurriframe.get(0).contentWindow.closewin =function () {
            	closeetab(icurrtab);
            };
            movecurrtab($(".J_menuTab.active")); 
        }
        return false;
    };
	
	maincontab.closetab=function (tabname) {
		var $this = $(".page-tabs-content").find("[data-id='"+tabname+"']");
		if($this){ 
			var tabname = $this.data("id");
	        var tabwidth = $this.width();
	         
        	var firstid = $(".page-tabs-content").find("[data-id]:first").data("id");
        	if (tabname == firstid)
    		{
    		   return;
    		}
        	
            if ($this.next(".J_menuTab").size()) {
                var k = $this.next(".J_menuTab:eq(0)").data("id");
                $this.next(".J_menuTab:eq(0)").addClass("active");
                $(".J_mainContent .J_iframe").each(function() {
                    if ($(this).data("id") == k) {
                        $(this).show().siblings(".J_iframe").hide();
                        return 
                    }
                });
                var n = parseInt($(".page-tabs-content").css("margin-left"));
                if (n < 0) {
                    $(".page-tabs-content").animate({
                        marginLeft: (n + tabwidth) + "px"
                    }, "fast");
                }
                $this.remove();
                $(".J_mainContent .J_iframe").each(function() {
                    if ($(this).data("id") == tabname) {
                        $(this).remove();
                        return 
                    }
                });
            }
            if ($this.prev(".J_menuTab").size()) {
                var k = $this.prev(".J_menuTab:last").data("id");
                $this.prev(".J_menuTab:last").addClass("active");
                $(".J_mainContent .J_iframe").each(function() {
                    if ($(this).data("id") == k) {
                        $(this).show().siblings(".J_iframe").hide();
                        return 
                    }
                });
                $this.remove();
                $(".J_mainContent .J_iframe").each(function() {
                    if ($(this).data("id") == tabname) {
                        $(this).remove();
                        return 
                    }
                });
            }
	      
			
		} 
	};
	maincontab.reloadtab=function (tabname,rul) {
		$(".J_mainContent .J_iframe").each(function() {
   		    var thisiframe =$(this);
            if (thisiframe.data("id") == tabname) {  
            	if(rul)
            	{thisiframe.get(0).contentWindow.location =rul;}
            	else
        		{
            		if (thisiframe.get(0).contentWindow.reloadwin != null && ((typeof thisiframe.get(0).contentWindow.reloadwin) == "function")) {
                 		thisiframe.get(0).contentWindow.reloadwin();
                 	}else
             		{
             		    thisiframe.get(0).contentWindow.location.reload();
             		} 
        		}
               
               return   
            }
        });  
	};
	maincontab.reloadtabactive=function (tabname,rul) {
		$(".J_mainContent .J_iframe").each(function() {
   		    var thisiframe =$(this);
            if (thisiframe.data("id") == tabname) {  
            	if(rul)
            	{thisiframe.get(0).contentWindow.location =rul;}
            	else
        		{
            		if (thisiframe.get(0).contentWindow.reloadwin != null && ((typeof thisiframe.get(0).contentWindow.reloadwin) == "function")) {
                 		thisiframe.get(0).contentWindow.reloadwin();
                 	}else
             		{
             		    thisiframe.get(0).contentWindow.location.reload();
             		} 
        		}
            	var tab = $(".page-tabs-content").find("[data-id='"+tabname+"']");
            	
            	if (!tab.hasClass("active")) {
            		thisiframe.show().siblings(".J_iframe").hide();
            		tab.addClass("active").siblings(".J_menuTab").removeClass("active");
                    movecurrtab(this);
                }
            	 
               return   
            }
        });  
	};
	
	$(".J_menuItem").on("click", opentab);
	$(".J_menuTabs").on("click", ".J_menuTab i", clickclosebt);
	$(".J_menuTabs").on("click", ".J_menuTab", selecttab); 
	$(".J_menuTabs").on("contextmenu", ".J_menuTab", function(e) {return false;}); 
    $(".J_tabLeft").on("click", moveleft);
    $(".J_tabRight").on("click", moveright); 
	$(".J_tabCloseOther").on("click", closeothertab); 
    $(".J_tabCloseActive").on("click",closeativetab);
    $(".J_tabRefreshActive").on("click",reloadativetab);
    $(".J_tabCloseAll").on("click", function() {
        $(".page-tabs-content").children("[data-id]").not(":first").each(function() {
            $('.J_iframe[data-id="' + $(this).data("id") + '"]').remove();
            $(this).remove();
        });
        $(".page-tabs-content").children("[data-id]:first").each(function() {
            $('.J_iframe[data-id="' + $(this).data("id") + '"]').show();
            $(this).addClass("active");
        });
        $(".page-tabs-content").css("margin-left", "0");
    });
});
